package io.datajek.spring.basics.movierecommendersystem.lesson7;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

import java.util.Arrays;

@SpringBootApplication
public class MovieRecommenderSystemApplication {

	public static void main(String[] args) {

		//SpringApplication.run(MovieRecommenderSystemApplication.class, args);

//		//创建 RecommenderImplementation 类的对象
//		RecommenderImplementation recommender = new RecommenderImplementation();

		//ApplicationContext负责管理Bean和依赖关系。
		ApplicationContext appContext = SpringApplication.run(MovieRecommenderSystemApplication.class,args);

		//RecommenderImplementation使用构造函数注入依赖关系
//		System.out.println("Calling getBean() on RecommenderImplementation");
		//使用ApplicationContext来查找正在使用的过滤器
//		RecommenderImplementation recommender = appContext.getBean(RecommenderImplementation.class);

		//RecommenderImplementation2使用setter方法注入依赖关系
		System.out.println("Calling getBean() on RecommenderImplementation2 ");
		RecommenderImplementation2 recommender2 = appContext.getBean(RecommenderImplementation2.class);


//		将过滤器的名称作为构造函数的参数传递
//		RecommenderImplementation recommender = new RecommenderImplementation(new ContentBasedFilter());

		//调用方法来获得推荐
		String[] result = recommender2.recommendMovies("Finding Dory");

		//显示结果
		System.out.println(Arrays.toString(result));

	}

}
